Reducing power consumption in data centers having nodes for hosting virtual machines

ABSTRACT

According to an aspect of the present invention, nodes for hosting of new virtual machines (VM) are selected according to approaches designed to reduce power consumption in a grid. In an embodiment, the approaches are designed to facilitate the possibility of freeing one or more nodes from hosting VMs to power down the nodes, thereby reducing power consumption. Thus, an example approach is based on provisioning a new VM on a node which currently (immediately prior to provisioning) has the maximum resource consumption. Another example approach is based on provisioning a new VM on a node which currently has small-sized VMs in terms of resource requirements. In yet another embodiment, the approach is based on provisioning a new VM on a node located in a geographical area having low power tariffs.

BACKGROUND OF THE INVENTION

1. Technical Field

The present disclosure relates to distributed computing systems and morespecifically to reducing power consumption in a data center having nodesfor hosting virtual machines (VM).

2. Related Art

Data centers house computer systems, which are also referred to asnodes. Data centers may also house various other equipment required tooperate the nodes and to provide communication capability. Examples ofsuch equipment include telecommunication equipment (routers, switches,etc.), storage systems, power supplies, etc. In particular, the powersupplies provide the necessary electrical power for the operation of thenodes and other equipments at the data centers.

Virtual machines (VMs) often form the basis for executing various userapplications. As is well known, a virtual machine may be viewed as acontainer in which user applications are executed. A node can hostmultiple virtual machines, and the virtual machines provide a view of acomplete machine (computer system) to the user applications executing inthe virtual machine. Thus, when multiple VMs are hosted on a singlenode, the memory and processing resources (of the node) are shared bythe VMs.

It may be desirable to reduce power consumption in a data centercontaining nodes hosting the VMs.

BRIEF DESCRIPTION OF THE DRAWINGS

Example embodiments of the present invention will be described withreference to the accompanying drawings briefly described below.

FIG. 1 is a block diagram illustrating an example environment in whichseveral aspects of the present invention can be implemented.

FIG. 2 is a diagram illustrating example VMs hosted in a node.

FIG. 3 is a flow chart illustrating the manner in which powerconsumption in a data center hosting VMs is reduced, according to anaspect of the present invention.

FIGS. 4A, 4B and 4C are diagrams depicting the contents of a tablestored in a scheduler in an embodiment of the present invention.

FIGS. 5A, 5B and 5C are diagrams depicting the contents of a tablestored in a scheduler in an alternative embodiment of the presentinvention.

FIGS. 6A and 6B are diagrams depicting the contents of a table stored ina scheduler in yet another embodiment of the present invention.

FIGS. 7A and 7B are diagrams depicting the contents of a table stored ina scheduler in yet another embodiment of the present invention.

FIG. 8 is a block diagram illustrating the details of a digitalprocessing system in which various aspects of the present invention areoperative by execution of appropriate software instructions.

In the drawings, like reference numbers generally indicate identical,functionally similar, and/or structurally similar elements. The drawingin which an element first appears is indicated by the leftmost digit(s)in the corresponding reference number.

DETAILED DESCRIPTION OF THE INVENTION 1. Overview

An aspect of the present invention selects nodes for provisioning of newvirtual machines (VM) according to approaches designed to reduce powerconsumption in a grid. Thus, when a new VM is to be created in the grid,the specific machine on which to host the new VM is selected, isdetermined to reduce power consumption.

In an embodiment, the approaches are designed to facilitate thepossibility of freeing one or more nodes from hosting VMs to thereafterpower down the nodes, thereby reducing power consumption. Thus, anexample approach is based on provisioning a new VM on a node whichcurrently (at a time node selection is to be performed) has the maximumresource consumption.

Another example approach is based on selecting nodes, which currently(at a time the node is to be selected) have smaller-sized VMs in termsof resource requirements, with a correspondingly higher probability.Thus, a node having smallest sized VMs may be chosen as a suitable nodeto provision (and thus host) a new VM.

In another embodiment, the approach is based on selecting a node locatedin a geographical area having lower power tariffs, with acorrespondingly higher probability. Thus, assuming a grid spans multipledata centers located in different geographical areas, a node located inlower tariff areas may be selected for hosting of the new VM.

Several aspects of the present invention are described below withreference to examples for illustration. However, one skilled in therelevant art will recognize that the invention can be practiced withoutone or more of the specific details or with other methods, components,materials and so forth. In other instances, well-known structures,materials, or operations are not shown in detail to avoid obscuring thefeatures of the invention. Furthermore, the features/aspects describedcan be practiced in various combinations, though only some of thecombinations are described herein for conciseness.

2. Example Environment

FIG. 1 is a block diagram illustrating an example environment in whichseveral aspects of the present invention can be implemented. The blockdiagram is shown containing client systems 110A-110C, network 120, andcluster/grid 130. Grid 130 is shown containing data centers 130A and130B. Data center 130A is shown containing server systems 140A-140M,scheduler 150, load balancer 160, and data stores 180A-180D, while datacenter 130B is shown containing server systems 140N-140Z and data stores180E-180M.

Data centers 130A and 130B may be physically located in differentgeographical locations, for example, in different cities. Systems indata centers 130A and 130B may operate in conjunction as a singleserver/system in providing services. In other words, users using clientsystems 110A-110C view data centers 130A and 130B as a single systemoffering specific desired services (without being concerned about thespecific individual nodes in the cluster).

Merely for illustration, only representative number/type of data centersand systems within the data centers is shown in FIG. 1. Manyenvironments often contain many more data centers, in turn containingmany more systems, both in number and type, and located geographicallyseparately (but connected with each other via correspondingcommunication paths), depending on the purpose for which the environmentis designed. Each system/device of FIG. 1 is described below in furtherdetail.

Communication path 135 contains both local area network (LAN) to provideconnectivity among digital systems within a data center, as well as(high speed) path between data centers. Thus, components/nodes in eachof data centers 130A and 130B may communicate with each other internallywithin the data centers as well as with components/nodes in the otherdata center. Due to such connectivity, a cluster may span multiple datacenters, while providing a desired high throughput performance.

Network 120 provides connectivity between client systems 110A-110C andgrid 130. Network 120 may be implemented using protocols such asTransmission Control Protocol (TCP) and/or Internet Protocol (IP), wellknown in the relevant arts. In general, in TCP/IP environments, a TCP/IPpacket is used as a basic unit of transport, with the source addressbeing set to the TCP/IP address assigned to the source system from whichthe packet originates and the destination address set to the TCP/IPaddress of the target system to which the packet is to be eventuallydelivered.

Each of client systems 110A-110C represents a system such as a personalcomputer, workstation, mobile station, etc., used by users to generate(client) requests to enterprise applications/softwares (userapplications) executed in virtual machines in server systems/nodes ingrid 130. The requests (for using specific services provided by the VMs)may be generated using appropriate user interfaces. In general, a clientsystem requests an application/software in a VM for performing desiredtasks/services and receives corresponding responses containing theresults of performance/processing of the requested tasks/services.

Load balancer 160 forwards client requests (received via network 120) toa corresponding VM in (a node) in grid 130, and may maintain informationinternally indicating which of the VMs in server systems 140A-140M and140N-140Z is currently available/ready for processing user requests(directed to a specific user application). The selection of the specificnode to service a client request is generally designed to minimize theresponse time to the request, and may be performed using any of severalwell-known techniques. In one embodiment, load balancer 160 receivesTCP/IP packets (corresponding to the user requests) that havedestination address equal to the IP address of the load balancer, andforwards each request in a packet having the IP address of therespective node (executing the specific application instances in acorresponding VM) as the destination IP address.

Some of the typical nodes in grid 130, such as data stores, serversystems, and scheduler as relevant to the understanding of the presentinvention are described in detail below. However, grid 130 may containmore types and/or number (typically, in thousands) of nodes acrossmultiple data centers, as will be apparent to one skilled in therelevant arts by reading the disclosure provided herein.

Each of data stores 180A-180D represents a non-volatile storagefacilitating storage and retrieval of a collection of data by one ormore enterprise applications/softwares executing in data center 130A, inparticular in server systems 140A-140M (typically while processingvarious client/user requests). Similarly, each of data stores 180E-180Mrepresents a non-volatile storage facilitating storage and retrieval ofa collection of data by one or more enterprise applications/softwaresexecuting in data center 130B.

Some of the data stores may be implemented using relational databasetechnologies and therefore provide storage and retrieval of data usingstructured queries such as SQL (Structured Query Language). Other datastores may be implemented as file stores providing storage and retrievalof data in the form of one or more files organized as one or moredirectories, as is well known in the relevant arts.

Each of server systems 140A-140M and 140N-140Z hosts virtual machines(VM), which in turn execute application instances, designed to processclient requests. Each application instance is implemented with theprogram logic to process the corresponding client request. It should beappreciated that the same application type (e.g., a payroll managementapplication) is often executed as multiple instances (typically ondifferent servers, but multiple instances can be executed in the server,but on different VMs) for reasons such as scalability, partitioning bydifferent customer entities, etc.

Scheduler (also termed grid resource manager) 150 schedulesprovisioning/termination of VMs on corresponding nodes, typicallyconsistent with the load and service level expectations set with thecustomers. Once a user application is available (or terminated) on acorresponding VM, the corresponding node/VM/user application informationmay be communicated to the load balancer thereafter.

Although only a single scheduler (150) is shown in FIG. 1, multiple(cooperative) instances of scheduler 150 may be executed, for exampleone each in each of data centers 130A and 130B. In such a scenario, eachof the instances may communicate with each other via path 135 to performthe operations noted above in a coordinated fashion.

In particular, scheduler 150 may determine the specific one of serversystems (140A-140M and 140N-140Z) in which to host new VMs. In addition,scheduler 150 may also cause the movement/migration of ‘currentlyhosted’ VMs from one server system to another. Accordingly, scheduler150 may maintain information specifying the VMs currently hosted in eachof server systems 140A-140M and 140N-140Z, the resources (in terms ofpercentage of CPU/processor time usage and memory requirements) consumedby each VM, and the amount of unused/free resources currently availablein each server system, as illustrated with respect to FIG. 2.

FIG. 2 illustrates an example state of server system 140A, shown‘currently’ hosting VMs 201, 202, 203 and 204, with some resources stillremaining ‘unused’. Scheduler 150, may thus, maintain information thatVMs 201, 202, 203 and 204 are hosted on server system 140A, as well asthe resources currently consumed by each of the VMs. Scheduler 150 mayalso maintain information specifying the amount of ‘unused’ resourcescurrently available in server system 140A, which may be used todetermine whether a new VM can be hosted in server system 140A or not.In an embodiment, the resources include a number of processors andmemory space. The processors may be shared across VMs, but the memoryspace is dedicated to (not shared among) specific VMs.

As noted above, it may be desirable to reduce power consumption in grid130, and scheduler 150 may be used for such an objective, as describednext.

3. Reducing Power Consumption

FIG. 3 is a flow chart illustrating the manner in which powerconsumption in a data center hosting VMs is reduced according to anaspect of the present invention. The flowchart is described with respectto FIGS. 1 and 2, and in relation to scheduler 150 merely forillustration. However, the features can be implemented in otherenvironments also without departing from the scope and spirit of variousaspects of the present invention, as will be apparent to one skilled inthe relevant arts by reading the disclosure provided herein.

In addition, some of the steps may be performed in a different sequencethan that depicted below, as suited to the specific environment, as willbe apparent to one skilled in the relevant arts. Many of suchimplementations are contemplated to be covered by several aspects of thepresent invention. The flow chart begins in step 301, in which controlimmediately passes to step 310.

In step 310, scheduler 150 determines that a new virtual machine (VM)needs to be hosted on a node in grid 130. Scheduler 150 may make such adetermination, for example, based on load information (number ofrequests being received for processing by respective user applicationtypes, etc.) received from load balancer 160, the SLA with therespective customers, etc. As is well known, an SLA (service levelagreement) may be based on a combination of a number of VMs to behosted, resources to be allocated, etc., in specified duration. A new VMimplies that a VM, in addition to those already hosted, is to beprovisioned. Thus, a new VM is generally needed when there is anenhanced load (number of requests) or SLA otherwise requires anadditional VM. Control then passes to step 320.

In step 320, scheduler 150 selects a node to host the VM, according toan approach designed to minimize power consumption in grid 130. Inaddition, scheduler 150 may also ensure that the selection of the nodeis consistent with the resource requirements of the new VM. Thus, whenthere are multiple nodes on which a new VM may be hosted, a node isselected to minimize power consumption in grid 130. Control then passesto 330.

In step 330, scheduler 150 provisions the new VM on the selected node.Provisioning implies creation of the VM on the selected node and entailstasks such as execution of the appropriate executable modules and anyneeded configurations, to cause the new VM to be hosted on the selectednode. Such provisioning may be implemented in a known way. Control thenpasses to step 310, in which scheduler 150 receives another request forhosting another (new) VM, and the corresponding steps of the flowchartmay be repeated.

Thus, according to an aspect of the present invention, the goal ofminimization of power consumption is considered at the time ofprovisioning of a new VM itself. As a result, the aggregate powerrequirements in operation of grid/data centers, may be reduced. Such arequirement may be increasingly critical as the scale/size of theclusters (or data centers) increases.

The operations of the flowchart described above are illustrated nextwith some example approaches designed to minimize power consumption. Inthe example approaches illustrated below, it is assumed for convenienceof description that only server systems 140A, 140B and 140Z (of FIG. 1)are present in grid 130. It is also assumed that each of nodes 140A,140B, and 140Z provides an equal amount of resources. It is understoodthat when the resources provided by the nodes are unequal, correspondingcomputations based on the actual amount of resources can be made toenable making a decision as to which node to provision the new VM in.

4. Hosting a New VM Based on Current Resource Consumption in Nodes

According to an aspect of the present invention, hosting of a new VM isbased on a determination of resources currently consumed in nodes by‘currently’ hosted VMs. FIGS. 4A-4C illustrate an example approach topower reduction according to such a technique. In the examples, merelyfor ease of understanding, a single number (resources consumed)representing resources consumed is shown. However, the approach may beextended multiple resources (e.g., containing at least memory requiredand processing resources required), as will be apparent to one skilledin the relevant arts by reading the disclosure provided herein.

FIG. 4A shows a table maintained in scheduler 150 with the contents ofthe table specifying information (immediately) prior to scheduler 150determining that a new VM needs to be provisioned. Four VMs 401, 402,403 and 404, each respectively consuming 20%, 20%, 30% and 10% of theresources (processing power and memory) of node 140A, are assumed to becurrently hosted in node 140A. Node 140B hosts VM 411, which consumes 5%of the resources of node 140B. Node 140Z hosts VMs 421, 422 and 423,respectively consuming 20%, 10% and 30% of the resources of node 140Z.

Assume now that scheduler 150 needs to provision a new VM (VM 405) inone of nodes 140A, 140B and 140Z, and that node 405 requires 10% of theresources of a node (any of nodes 140A, 140B and 140Z). Each of nodes140A, 140B and 140Z has the 10% resource requirement needed to beprovided for the new VM 405. However, node 140A currently has themaximum resource consumption (20+20+30+10=80%), while also havingsufficient resources for the new VM 405. Hence, scheduler 150 provisionsnew VM 405 in node 140A, as shown in the table of FIG. 4B.

The approach maximizes the probability that a node currently with onlyminimal resource consumed (node 140B in the example) may be freed fromhosting VMs, for example, by deactivation or migration of one or moreVMs (VM 411 in the example) to another node at a subsequent timeinstance, thereby permitting node 140B to be shutdown (at leasttemporarily, till its resources are subsequently required for hostingother VMs), and hence reducing reduction of power in grid 130. As shownin FIG. 4C, VM 411 is migrated at a subsequent instance of time to node140A, thereby allowing node 140B to be shut down to reduce power.

It may be appreciated that the approach illustrated above provisions anew VM in a node that currently (just prior to provisioning) has themaximum resource utilization, provided that the node has sufficientresources to be allocated for the new VM. In addition, migration of a VMfrom one node to another may also be based on a similar approach, i.e.,a VM is migrated to a node with currently higher resource consumptionrather than to a node with currently lesser resource consumption.

5. Hosting a New VM Based on Size of VMs in Nodes

According to another aspect of the present invention, hosting of a newVM is based on the sizes (extent of resources consumed) ofcurrently-hosted VMs in nodes. In an embodiment, scheduler 150 selects anode hosting VMs which are small and like-sized in terms of resourceconsumption for hosting a new VM. FIG. 5A shows the contents (entries)of a table maintained in scheduler 150 prior to scheduler 150determining that a new VM needs to be provisioned. Four VMs 501, 502,503 and 504 each consuming 10% of the resources of node 140A are assumedto be currently hosted in node 140A. Node 140B hosts VMs 511 and 512respectively consuming, 40% and 50% of the resources of node 140B. Node140Z hosts VMs 521 consuming 40% of the resources of node 140Z.

Assume now that scheduler 150 needs to host a new VM (VM 505) in one ofnodes 140A, 140B and 140Z, and that node 405 requires 10% of theresources of a node (any of nodes 140A, 140B and 140Z). Each of nodes140A, 140B and 140Z has the 10% resource requirement needed to beprovided for the new VM 505.

However, node 140A currently has VMs each of which consumes the leastamount of resources (i.e., smallest-sized VMs) as well as aresimilar/like-sized in terms of resource consumption, with each of theVMs consuming the same amount (10%) of the resources. Node 140A also hassufficient resources (the required 10%) for the new VM 405. Hence,scheduler 150 provisions new VM 505 in node 140A, as shown in the tableof FIG. 5B.

The approach is based on the premise that VMs which need minimal (andlike-sized) resources can, at a future point in time, be more easilymigrated to another node than VMs with larger resource requirements. Asan illustration, the possibility of migrating VMs 511 and 512 (with 40%and 50% resource requirements respectively) to a different node (withthe aim of shutting down node 140B) might be less compared to thepossibility of migrating the ‘smaller’ VMs in node 140A to another node.

As shown in FIG. 5C, VMs 501, 502, 503, 504 and 505 are each migrated atsubsequent instances of time to node 140Z, thereby allowing node 140A tobe shut down to reduce power.

It is noted that the technique of FIGS. 5A, 5B and 5C may be applied incombination with that of FIGS. 4A, 4B and 4C, based for example on acomputation of the probability that each of the techniques provides thata node may eventually be freed from hosting VMs. In such a combinedtechnique, the probability provided by each individual approach offreeing a node of VMs may be computed prior to each decision ofprovisioning a new VM. Then, whichever approach indicates a higherprobability may be adopted. Alternatively, or in addition, the potentialsavings in power afforded by each approach, the complexity ofcomputation demanded, etc., may also be considered.

In an embodiment, scheduler 150 first considers the number of VMs ineach of the available nodes. If multiple nodes satisfy the criterion ofmaximum number of VMs, scheduler 150 may additionally consider resourceconsumption, similarity in sizes of VMs, etc. in each of the multiplenodes, and selects the ‘best’ node based on the approaches of FIGS.4A/4B/4C as well as 5A/5B/5C.

6. Hosting a New VM Based on Geographical Location of a Node

According to yet another aspect of the present invention, hosting of anew VM is based on power tariffs applicable in the geographicallocations (e.g., cities) in which nodes/data centers are located. FIG.6A shows the contents of a table maintained in scheduler 150 prior toscheduler 150 determining that a new VM needs to be provisioned. Nodes140A and 140B, being housed in the same data center (130A), are locatedin the same geographical region “PP”, where the power tariff is assumedto be $5/unit of power consumed. Node 140Z, housed in data center 130B,is assumed to be located in a geographical area “QQ” where the powertariff is $1/unit. Node 140A hosts VMs 601, 602, 603 and 604 withrespective resource consumptions of 10%, 20%, 20% and 10%. Node 140Bhosts VMs 611 and 612 with respective resource consumptions of 40% and50%. Node 140Z hosts VM 621 with a resource consumption of 20%.

Scheduler 150 provisions a new VM 605 (with resource requirement of 10%)in node 140Z, as shown in the table of FIG. 6B. The goal of the approachis to free (if possible) one or more of nodes 140A and 140B of VMs (bypossibly moving the VMs in 140A and/or 140B to lower tariff area “QQ”),and thereby to shut them down (and thus saving power). Thus, accordingto the approach, a new VM is provisioned in a node located in alower-tariff area.

Again, the technique illustrated with respect to FIGS. 6A and 6B may beapplied in combination with one or more of the techniques noted above(sections 4 and 5 above), based on computed probabilities afforded byeach of the individual techniques. Thus, in the example of FIGS. 6A and6B, new VM 605 may be provisioned in node 140Z (even though the resourceutilization of node 140Z is less compared to nodes 140A and 140B locatedin higher-tariff areas), if the probability that such provisioningprovides for eventual freeing of node 140A and 140B from hosting VMs ishigher than a probability of freeing node 140Z.

7. Hosting a New VM Based on Customer Usage Patterns

According to yet another aspect of the present invention, hosting of anew VM is based on usage patterns of customers requesting services fromnodes in a cluster. In the embodiment, scheduler 150 maintainsinformation specifying the number of VMs that are (expected to be)required for each customer for corresponding future time durations(e.g., months). Scheduler 150 may obtain such information from adatabase in one or more of the nodes in grid 130, the information beingstored in the database based, for example, on service-level agreements(SLA) for each customer. Alternatively, potential future usage patterns(indicating number of VMs required for a customer) may be determined byscheduler 150 (or another component in grid 130) based on past historyof VM requirements of a customer.

Scheduler 150 maintains information indicating the number of VMsrequired by a customer, as shown in the example table of FIG. 7A. Theinformation of the table of FIG. 7A indicates that customer C1 expects arequirement of 25 VMs for the months March through June, 26 VMs for themonths July through November, and 5 VMs for the months December throughFebruary. Scheduler 150 schedules the corresponding VMs required bycustomer C1 to be hosted in node 140A.

Customer C2 expects a requirement of 16 VMs for the months March throughJune, 14 VMs for the months July through November, and 13 VMs for themonths December through February. Scheduler 150 schedules thecorresponding VMs required by customer C2 to be hosted in node 140B.Customer C3 expects a requirement of 9 VMs for the months March throughJune, 15 VMs for the months July through November, and 19 VMs for themonths December through February. Scheduler 150 schedules thecorresponding VMs required by customer C3 to be hosted in node 140Z.

Assume now that scheduler 150 needs to provision a new VM (e.g., forcustomer C2) in the month of November. Scheduler 150 provisions the newVM in node 140B, based on the knowledge that node 140A will need to hostonly five VMs through the months of December through February, therebyoffering the possibility of migrating the five VMs from node 140A toanother node and hence shutting down node 140A. The new VM is indicatedin FIG. 7B as being provisioned in node 140B by the entry (14+1) (the‘1’ indicating the new VM provisioned) against column July-November inFIG. 7B. It is assumed that node 140B has sufficient spare resources tohost the additional (new) VM.

At a subsequent time instance (e.g., starting in the month of December),scheduler 150 migrates the five VMs required by customer C1 from node140A to node 140Z (assuming sufficient resources are available in node140Z to accommodate the five VMs), as shown by the entries for node 140Zfor the months December to February. Node 140A may then be powered downfor the duration of December to February, thereby reducing powerconsumption in grid 130.

It may be appreciated that the approaches described above are designedto facilitate the possibility of freeing one or more nodes from hostingVMs and to power down the node(s), thereby reducing power consumption.As noted above, two or more of the different approaches described insections above may be applied in combination as well. Powering down ofthe node(s) may be performed, for example, manually or by load balancer160.

In general, while the various considerations are described in isolationabove, each consideration may be provided a weighted average (with thevalue of weights being used, as suited in the individual environments)and the weighted average computed for each node may be used in selectingthe specific node for hosting of a new VM. At least in such a situation,the probability of selection of a node may be either enhanced or reduceddue to each consideration.

For example, with respect to the approach of FIGS. 4A-4C, nodes havingmore resources consumed may be selected with a higher probability,compared to nodes having more unused resources. With respect to theapproach of FIGS. 5A-5C, nodes having smaller VMs (i.e., individual VMsusing less resources) may be chosen with a higher probability. Withrespect to the approach of FIGS. 6A and 6B, nodes in regions with lowerpower tariff may be selected with a higher probability. With respect tothe approach of FIGS. 7A and 7B, nodes which would have more VMs at afuture time duration, would be selected with a higher probability.

It should be appreciated that the features described above can beimplemented in various embodiments as a desired combination of one ormore of hardware, software, and firmware. The description is continuedwith respect to an embodiment in which various features are operativewhen the software instructions described above are executed.

8. Digital Processing System

FIG. 8 is a block diagram illustrating the details of digital processingsystem 800 in which various aspects of the present invention areoperative by execution of appropriate software instructions. Digitalprocessing system 800 may correspond to scheduler 150 (as well as any ofthe server systems of grid 130).

Digital processing system 800 may contain one or more processors such asa central processing unit (CPU) 810, random access memory (RAM) 820,secondary memory 830, graphics controller 860, display unit 870, networkinterface 880, and input interface 890. All the components exceptdisplay unit 870 may communicate with each other over communication path850, which may contain several buses as is well known in the relevantarts. The components of FIG. 8 are described below in further detail.

CPU 810 may execute instructions stored in RAM 820 to provide severalfeatures of the present invention. CPU 810 may contain multipleprocessing units, with each processing unit potentially being designedfor a specific task. Alternatively, CPU 810 may contain only a singlegeneral-purpose processing unit.

RAM 820 may receive instructions from secondary memory 830 usingcommunication path 850. RAM 820 is shown currently containing softwareinstructions constituting operating environment 825 and/or user programs826 (such as client applications, Web browser, application instancesprocessing user requests, etc.). The operating environment containsutilities shared by user programs, and such shared utilities includeoperating system, device drivers, virtual machines, etc., which providea (common) run time environment for execution of userprograms/applications.

Graphics controller 860 generates display signals (e.g., in RGB format)to display unit 870 based on data/instructions received from CPU 810.Display unit 870 contains a display screen to display the images definedby the display signals. Input interface 890 may correspond to a keyboardand a pointing device (e.g., touch-pad, mouse) and may be used toprovide inputs. Network interface 880 provides connectivity to a network(e.g., using Internet Protocol), and may be used to communicate withother systems connected to the network (for example by connecting topath 135 of FIG. 1).

Secondary memory 830 may contain hard drive 835, flash memory 836, andremovable storage drive 837. Secondary memory 830 may store data (forexample, the tables of FIGS. 4A, 4B, 4C, 5A, 5B, 5C, 6A, 6B, 7A and 7B)and software instructions, which enable digital processing system 800 toprovide several features in accordance with the present invention.

Some or all of the data and instructions may be provided on removablestorage unit 840, and the data and instructions may be read and providedby removable storage drive 837 to CPU 810. Floppy drive, magnetic tapedrive, CD-ROM drive, DVD Drive, Flash memory, removable memory chip(PCMCIA Card, EPROM) are examples of such removable storage drive 837.

Removable storage unit 840 may be implemented using medium and storageformat compatible with removable storage drive 837 such that removablestorage drive 837 can read the data and instructions. Thus, removablestorage unit 840 includes a computer readable (storage) medium havingstored therein computer software and/or data. However, the computer (ormachine, in general) readable medium can be in other forms (e.g.,non-removable, random access, etc.).

In this document, the term “computer program product” is used togenerally refer to removable storage unit 840 or hard disk installed inhard drive 835. These computer program products are means for providingsoftware to digital processing system 800. CPU 810 may retrieve thesoftware instructions, and execute the instructions to provide variousfeatures of the present invention described above.

Reference throughout this specification to “one embodiment”, “anembodiment”, or similar language means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment of the present invention. Thus,appearances of the phrases “in one embodiment”, “in an embodiment” andsimilar language throughout this specification may, but do notnecessarily, all refer to the same embodiment.

Furthermore, the described features, structures, or characteristics ofthe invention may be combined in any suitable manner in one or moreembodiments. In the above description, numerous specific details areprovided such as examples of programming, software modules, userselections, network transactions, database queries, database structures,hardware modules, hardware circuits, hardware chips, etc., to provide athorough understanding of embodiments of the invention.

9. Conclusion

While various embodiments of the present invention have been describedabove, it should be understood that they have been presented by way ofexample only, and not limitation. Thus, the breadth and scope of thepresent invention should not be limited by any of the above-describedexemplary embodiments, but should be defined only in accordance with thefollowing claims and their equivalents.

It should be understood that the figures and/or screen shots illustratedin the attachments highlighting the functionality and advantages of thepresent invention are presented for example purposes only. The presentinvention is sufficiently flexible and configurable, such that it may beutilized in ways other than that shown in the accompanying figures.

Further, the purpose of the following Abstract is to enable the U.S.Patent and Trademark Office and the public generally, and especially thescientists, engineers and practitioners in the art who are not familiarwith patent or legal terms or phraseology, to determine quickly from acursory inspection the nature and essence of the technical disclosure ofthe application. The Abstract is not intended to be limiting as to thescope of the present invention in any way.

What is claimed is:
 1. A method of reducing power consumption in a gridcontaining a plurality of nodes, said plurality of nodes used forhosting virtual machines (VM), said method comprising: determining thata new virtual machine (VM) is to be hosted in said grid; selecting anode to host said new VM, according to an approach designed to minimizepower consumption in said grid, said node being comprised in saidplurality of nodes; and provisioning said new VM on the selected node,wherein said selecting according to said approach comprises: determininga first node as said node, wherein said first node has a maximumresource consumption among said plurality of nodes at the time of saidselecting, wherein resource consumption in each of nodes is measuredbased on extent of usage of memory and processing resources in the node,wherein said selecting selects said first node to provision said new VMby virtue of said maximum resource consumption within said first node,and wherein said first node has sufficient resources for hosting saidnew VM at the time of said selecting.
 2. A method of reducing powerconsumption in a grid containing a plurality of nodes, said plurality ofnodes used for hosting virtual machines (VM), said method comprising:determining that a new virtual machine (VM) is to be hosted in saidgrid; selecting a node to host said new VM, according to an approachdesigned to minimize power consumption in said grid, said node beingcomprised in said plurality of nodes; and provisioning said new VM onthe selected node, wherein said selecting according to said approachcomprises: determining a first node which is hosting smaller-sized VMsthan a second node when said selecting is to be performed, wherein saidfirst node and said second node are contained in said plurality ofnodes, wherein said selecting selects said first node with a higherprobability than said second node, by virtue of hosting smaller sizedVMs, to provision said-new VM, and wherein said first node hassufficient resources for hosting said new VM at the time of saidselecting.
 3. The method of claim 2, wherein said determining determinesthat another VM is to be hosted in said grid, wherein said selectingfurther comprises: determining a third node located in a geographicalarea having lower power tariff than a geographical location having afourth node, said third node and said fourth node being contained insaid plurality of nodes, wherein said selecting selects said third nodewith a higher probability than said fourth node to provision saidanother VM, and wherein said first node has sufficient resources forhosting said another VM at the time of said selecting.
 4. A method ofreducing power consumption in a grid containing a plurality of nodes,said plurality of nodes used for hosting virtual machines (VM), saidmethod comprising determining that a new virtual machine (VM) is to behosted in said grid; selecting a node to host said new VM, according toan approach designed to minimize power consumption in said grid, saidnode being comprised in said plurality of nodes; and provisioning saidnew VM on the selected node, wherein said selecting according to saidapproach comprises: maintaining information specifying a future timeduration in which a first VM, which is hosted on a first node when saidselecting is to be performed, can be terminated, wherein saidinformation further indicates that VMs, presently hosted on a secondnode when said selecting is to be performed, need not be terminated ator before said future time duration, wherein said selecting selects saidsecond node with a higher probability than said first node to provisionsaid new VM, and wherein both of said first node and said second nodehave sufficient resources for hosting said new VM at the time of saidselecting.
 5. A non-transitory machine readable medium storing one ormore sequences of instructions for enabling a scheduler system to reducepower consumption in a grid, wherein execution of said one or moresequences of instructions by one or more processors contained in saidscheduler system causes said scheduler system to perform the actions of:determining that a new virtual machine (VM) is to be hosted in saidgrid; selecting a node to host said new VM, according to an approachdesigned to minimize power consumption in said grid, said node beingcomprised in a plurality of nodes; and provisioning said new VM on theselected node, wherein said selecting according to said approachcomprises: determining a first node as said node, wherein said firstnode has a maximum resource consumption among said plurality of nodes atthe time of said selecting, wherein resource consumption in each ofnodes is measured based on extent of usage of memory and processingresources in the node, wherein said selecting selects said first node tohost said new VM by virtue of said maximum resource consumption withinsaid first node, and wherein said first node has sufficient resourcesfor hosting said new VM at the time of said selecting.
 6. Thenon-transitory machine readable medium of claim 5, wherein saidselecting further comprises: determining a third node located in ageographical area having lower power tariff than a geographical locationhaving a fourth node, said third node and said fourth node beingcontained in said plurality of nodes, wherein said selecting selectssaid third node with a higher probability than said fourth node to hostsaid new VM, and wherein said third node has sufficient resources forhosting said new VM at the time of said selecting.
 7. The non-transitorymachine readable medium of claim 5, wherein said selecting according tosaid approach comprises: maintaining information specifying acorresponding number of VMs required on each of said plurality of nodesin a future time duration, wherein said information specifies that asecond node requires fewer VMs compared to that required on a thirdnode, wherein said selecting selects said third node with a higherprobability compared to said second node to provision said new VM.
 8. Anon-transitory machine readable medium storing one or more sequences ofinstructions for enabling a scheduler system to reduce power consumptionin a grid, wherein execution of said one or more sequences ofinstructions by one or more processors contained in said schedulersystem causes said scheduler system to perform the actions of:determining that a new virtual machine (VM) is to be hosted in saidgrid; selecting a node to host said new VM, according to an approachdesigned to minimize power consumption in said grid, said node beingcomprised in a plurality of nodes; and provisioning said new VM on theselected node, wherein said selecting according to said approachcomprises: determining a first node which is hosting smaller-sized VMsthan a second node when said selecting is to be performed, wherein saidfirst node and said second node are contained in said plurality ofnodes, wherein said selecting selects said first node with a higherprobability than said second node, by virtue of hosting smaller sizedVMs, to host said new VM, and wherein said first node has sufficientresources for hosting said new VM at the time of said selecting.
 9. Anon-transitory machine readable medium storing one or more sequences ofinstructions for enabling a scheduler system to reduce power consumptionin a grid, wherein execution of said one or more sequences ofinstructions by one or more processors contained in said schedulersystem causes said scheduler system to perform the actions of:determining that a new virtual machine (VM) is to be hosted in saidgrid; selecting a node to host said new VM, according to an approachdesigned to minimize power consumption in said grid, said node beingcomprised in a plurality of nodes; and provisioning said new VM on theselected node, wherein said selecting according to said approachcomprises: maintaining information specifying a future time duration inwhich a first VM, which is hosted on a first node when said selecting isto be performed, can be terminated, wherein said information furtherindicates that VMs, presently hosted on a second node when saidselecting is to be performed, need not be terminated at or before saidfuture time duration, wherein said selecting selects said second nodewith a higher probability than said first node to host said new VM, andwherein both of said first node and said second node have sufficientresources for hosting said new VM at the time of said selecting.
 10. Agrid comprising: a plurality of nodes; and a scheduler system operableto: determine that a new virtual machine (VM) is to be hosted in saidgrid; select a node to host said new VM, according to an approachdesigned to minimize power consumption in said grid, said node beingcomprised in said plurality of nodes; and provision said new VM on theselected node, to perform said select, wherein said scheduler system isfurther operable to: determine a first node as said node, wherein saidfirst node has a maximum resource consumption among said plurality ofnodes at the time of said select, wherein resource consumption in eachof nodes is measured based on extent of usage of memory and processingresources in the node, wherein said select selects said first node tohost said new VM by virtue of said maximum resource consumption withinsaid first node, and wherein said first node has sufficient resourcesfor hosting said new VM at the time of said select.
 11. A gridcomprising: a plurality of nodes; and a scheduler system operable to:determine that a new virtual machine (VM) is to be hosted in said grid;select a node to host said new VM, according to an approach designed tominimize power consumption in said grid, said node being comprised insaid plurality of nodes; and provision said new VM on the selected node,to perform said select, wherein said scheduler system is furtheroperable to: determine a first node which is hosting smaller-sized VMsthan a second node when said selecting is to be performed, wherein saidfirst node and said second node are contained in said plurality ofnodes, wherein said select selects said first node with a higherprobability than said second node, by virtue of hosting smaller sizedVMs, to host said new VM, and wherein said first node has sufficientresources for hosting said new VM at the time of said select.
 12. A gridcomprising: a plurality of nodes; and a scheduler system operable to:determine that a new virtual machine (VM) is to be hosted in said grid;select a node to host said new VM, according to an approach designed tominimize power consumption in said grid, said node being comprised insaid plurality of nodes; and provision said new VM on the selected node,to perform said select, wherein said scheduler system is furtheroperable to: maintain information specifying a future time duration inwhich a first VM, which is hosted on a first node when said select is tobe performed, can be terminated, wherein said information furtherindicates that VMs, presently hosted on a second node when said selectis to be performed, need not be terminated at or before said future timeduration, wherein said select selects said second node with a higherprobability than said first node to host said new VM, and wherein bothof said first node and said second node have sufficient resources forhosting said new VM at the time of said select.
 13. The grid of claim12, to perform said select, wherein said scheduler system is furtheroperable to: determine a third node located in a geographical areahaving lower power tariff than a geographical location having a fourthnode, said third node and said fourth node being contained in saidplurality of nodes, wherein said select selects said third node with ahigher probability than said fourth node to host said new VM, andwherein said third node has sufficient resources for hosting said new VMat the time of said selecting.
 14. A grid comprising: a plurality ofnodes; and a scheduler system operable to: determine that a new virtualmachine (VM) is to be hosted in said grid; select a node to host saidnew VM, according to an approach designed to minimize power consumptionin said grid, said node being comprised in said plurality of nodes; andprovision said new VM on the selected node, to perform said select,wherein said scheduler system is further operable to: maintaininformation specifying a corresponding number of VMs required on each ofsaid plurality of nodes in a future time duration, wherein saidinformation specifies that a first node requires fewer VMs compared tothat required on a second node, wherein said selecting selects saidsecond node with a higher probability compared to said first node toprovision said new VM.
 15. A method of reducing power consumption in agrid containing a plurality of nodes, said plurality of nodes used forhosting virtual machines (VM), said method comprising: determining thata new virtual machine (VM) is to be hosted in said grid; selecting anode to host said new VM, according to an approach designed to minimizepower consumption in said grid, said node being comprised in saidplurality of nodes; and provisioning said new VM on the selected node,wherein said selecting according to said approach comprises: maintaininginformation specifying a corresponding number of VMs required on each ofsaid plurality of nodes in a future time duration, wherein saidinformation specifies that a first node requires fewer VMs compared tothat required on a second node, wherein said selecting selects saidsecond node with a higher probability compared to said first node toprovision said new VM.